/**
 * 
 */
package com.wolfpire.subject.dao;

import java.util.List;
import java.util.Map;

import com.wolfpire.system.common.Page;
import com.wolfpire.system.common.base.dao.IBaseHibernateDao;
import com.wolfpire.system.model.Profession;
import com.wolfpire.system.model.Subject;
import com.wolfpire.system.model.User;

/**
 * 学科模块 Dao接口
 * @author lihd
 *
 */
public interface SubjectDao extends IBaseHibernateDao<Subject, Long> {
	
	/**
	 * 根据user过滤查询列表
	 * @param user
	 * @return
	 */
	public List<Subject> list(Subject subject);
	
	/**
	 * 根据user过滤查询带分页列表
	 * @param page
	 * @param filterUser
	 * @return
	 */
	public Page<Subject> findSubjects(Page<Subject> page, Subject filterSubject);
	
	public Page<Map<String, Object>> findSubjects(Page<Map<String, Object>> page,Subject filterUser, long usergrouoId);
	
	/**
	 * 通过账户获取用户
	 * @param account
	 * @return
	 */
	public Subject getByName(String name);

	public List<Map<String, Object>> querySubjectFullInfo();
	/**
	 * 
	 * @param num
	 * @return
	 */
	public List<Subject> list(int num);
	
	public Subject getById(long id);
	
	public List<Subject> findSubjectByUserGroupId(long userGroupId);
	
	public List<Subject> findAllSubject();
	
}
